/**
 * 位置数据模型
 * 与后端LocationData类对应
 */
export default class LocationData {
  /**
   * @param {String} id - 设备或用户ID
   * @param {Number} longitude - 经度
   * @param {Number} latitude - 纬度
   */
  constructor(id, longitude, latitude) {
    this.id = id;
    this.longitude = longitude;
    this.latitude = latitude;
  }
  
  /**
   * 从对象创建LocationData实例
   * @param {Object} obj - 包含id、longitude和latitude属性的对象
   * @returns {LocationData} 新的LocationData实例
   */
  static fromObject(obj) {
    if (!obj || !obj.id || obj.longitude === undefined || obj.latitude === undefined) {
      throw new Error('无效的位置数据对象');
    }
    return new LocationData(obj.id, obj.longitude, obj.latitude);
  }
  
  /**
   * 将LocationData实例转换为JSON字符串
   * @returns {String} JSON字符串
   */
  toJSON() {
    return JSON.stringify({
      id: this.id,
      longitude: this.longitude,
      latitude: this.latitude
    });
  }
} 